package cn.cdeden.knowledge.enums;


import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;

/**
 * @ProjectName : ecm_svn02
 * @Package : com.cdyd.ecm.notice.message.util.enums
 * @ClassName : MessageTypeChildEnums
 * @Author : Yu.
 * @Description : // TODO
 * @Date : 2023/12/21 15:37
 * @Version : 1.0
 */

@Getter
@AllArgsConstructor
public enum MessageTypeChildEnums {

    ENTERPRISE_FILE( MessageFileTypeEnums.FILE, FileEnums.ENTERPRISE_FILE.getCode(), TreeTypeEnum.FILE.getType()), //企业的文件
    ENTERPRISE_FOLDER(MessageFileTypeEnums.FILE,  FileEnums.ENTERPRISE_FILE.getCode(),TreeTypeEnum.FOLDER.getType()), //企业的文件夹

    TEAM_DISTRIBUTE_FILE( MessageFileTypeEnums.DISTRIBUTE,FileEnums.TEAM_FILE.getCode(), TreeTypeEnum.FILE.getType()), //分发文件
    TEAM_DISTRIBUTE_FOLDER(MessageFileTypeEnums.DISTRIBUTE,  FileEnums.TEAM_FILE.getCode(),TreeTypeEnum.FOLDER.getType()), //分发的文件夹
    TEAM_DISTRIBUTE_RICHTEXT(MessageFileTypeEnums.DISTRIBUTE,  FileEnums.TEAM_FILE.getCode(),TreeTypeEnum.RICHTEXT.getType()), //分发的表单文档

    PERSONAL_DISTRIBUTE_FILE( MessageFileTypeEnums.DISTRIBUTE,FileEnums.PERSONAL_FILE.getCode(), TreeTypeEnum.FILE.getType()), //分发文件
    PERSONAL_DISTRIBUTE_FOLDER(MessageFileTypeEnums.DISTRIBUTE,  FileEnums.PERSONAL_FILE.getCode(),TreeTypeEnum.FOLDER.getType()), //分发的文件夹
    PERSONAL_DISTRIBUTE_RICHTEXT(MessageFileTypeEnums.DISTRIBUTE,  FileEnums.PERSONAL_FILE.getCode(),TreeTypeEnum.RICHTEXT.getType()), //分发的表单文档


    TEAM_FILE( MessageFileTypeEnums.FILE,FileEnums.TEAM_FILE.getCode(), TreeTypeEnum.FILE.getType()), //团队的文件
    TEAM_FOLDER(MessageFileTypeEnums.FILE,  FileEnums.TEAM_FILE.getCode(),TreeTypeEnum.FOLDER.getType()), //团队的文件夹
    TEAM_RICHTEXT(MessageFileTypeEnums.FILE,  FileEnums.TEAM_FILE.getCode(),TreeTypeEnum.RICHTEXT.getType()), //团队的表单文档


//    ANNOUNCEMENT_COMPANY(MessageTypeEnums.ANNOUNCEMENT, NoticeTypeEnums.COMPANY.getCode()), //公司公告
//    ANNOUNCEMENT_NOTIFY_NOTICE(MessageTypeEnums.ANNOUNCEMENT,NoticeTypeEnums.NOTIFY_NOTICE.getCode()), //通知通告
//    ANNOUNCEMENT_TEMPORARY(MessageTypeEnums.ANNOUNCEMENT,NoticeTypeEnums.TEMPORARY.getCode()), //临时通知
//
//    ANNOUNCEMENT_TASK(MessageTypeEnums.TASK,NoticeTypeEnums.TODO.getCode()), //审批通知
//    ANNOUNCEMENT_REJECT(MessageTypeEnums.TASK,NoticeTypeEnums.REJECT.getCode()), //审批驳回
//    ANNOUNCEMENT_COMPLETE(MessageTypeEnums.TASK,NoticeTypeEnums.COMPLETE.getCode()),//审批通过
//    ANNOUNCEMENT_CC(MessageTypeEnums.TASK,NoticeTypeEnums.CC.getCode()),//抄送通知
//    ANNOUNCEMENT_BACK(MessageTypeEnums.TASK,NoticeTypeEnums.BACK.getCode()),//审批退回
//    ANNOUNCEMENT_FORWARD(MessageTypeEnums.TASK,NoticeTypeEnums.FORWARD.getCode()),//转交任务
//    ANNOUNCEMENT_OVERTIME(MessageTypeEnums.TASK,NoticeTypeEnums.OVERTIME.getCode()),//审批超时
//
//    //协同空间编辑权限 通知
//    SYNERGY_FILE_UPDATE( MessageTypeEnums.SYNERGY), //协同空间编辑权限
//
//
//    //协同空间编辑权限 通知
//    PERSONAL_FILE_SHARE( MessageTypeEnums.FILE_SHARE,FileEnums.PERSONAL_FILE.getCode()), //文件分享管理 个人
//    TEAM_FILE_SHARE( MessageTypeEnums.FILE_SHARE,FileEnums.TEAM_FILE.getCode()), //文件分享管理 团队
//    ENTERPRISE_FILE_SHARE( MessageTypeEnums.FILE_SHARE,FileEnums.ENTERPRISE_FILE.getCode()), //文件分享管理 企业
//
//    //日历分享
//    CALENDAR_SHARING(MessageTypeEnums.CALENDAR),
//
//    //项目
//    PROJECT_TASKS( MessageTypeEnums.PROJECT,NoticeTypeEnums.tasks.getCode()),
//    PROJECT_PRO_INFO( MessageTypeEnums.PROJECT,NoticeTypeEnums.PRO_INFO.getCode()), //成员的
//
//    //培训
//
//    TRAINING_COURSE(MessageTypeEnums.TRAINING,MessageTmcEnums.COURSE.getCode()) ,//课程
//    TRAINING_EXAM_TASK(MessageTypeEnums.TRAINING,MessageTmcEnums.EXAM_TASK.getCode()),//考核
//    TRAINING_COURSE_PLAN(MessageTypeEnums.TRAINING,MessageTmcEnums.COURSE_PLAN.getCode()), //培训计划
//    TRAINING_TASK_PLAN(MessageTypeEnums.TRAINING,MessageTmcEnums.TASK_PLAN.getCode()), //任务计划
//
//    //合同
//    CONTRACT_EFFECTIVE(MessageTypeEnums.CONTRACT,MessageCmsEnums.EFFECTIVE.getCode()),
//    CONTRACT_TERMINATION(MessageTypeEnums.CONTRACT,MessageCmsEnums.TERMINATION.getCode()),

    ;

    MessageTypeChildEnums(MessageFileTypeEnums messageType, String libraryType) {
        this.messageType = messageType;
        this.libraryType = libraryType;
        this.type = null;
    }



    MessageTypeChildEnums(MessageFileTypeEnums messageType) {
        this.messageType = messageType;
        this.libraryType = null;
        this.type = null;
    }

    private final MessageFileTypeEnums messageType; //消息类型
    private final String libraryType; //
    private final String type;



    public static MessageTypeChildEnums find(MessageFileTypeEnums messageFileTypeEnums, String type) {
        for (MessageTypeChildEnums value : MessageTypeChildEnums.values()) {
            if (messageFileTypeEnums == value.getMessageType()) {
                if (StringUtils.equalsIgnoreCase(type,value.getLibraryType())) {
                    return value;
                }
            }
        }
        return null;
    }



}
